package com.beimi.fight.listener;

import com.alibaba.fastjson.JSON;
import com.beimi.match.param.BeiMiClient;
import com.corundumstudio.socketio.AckRequest;
import com.corundumstudio.socketio.SocketIOClient;
import com.corundumstudio.socketio.annotation.OnEvent;

public class JoinRoomListener {
	// 抢地主事件
	@OnEvent(value = "joinroom")
	public void onJoinRoom(SocketIOClient client, AckRequest request, String data) {
		System.err.println("onJoinRoom");

		BeiMiClient beiMiClient = JSON.parseObject(data, BeiMiClient.class);
		String token = beiMiClient.getToken();
		System.err.println("token " + token);
//		Token userToken;
//		if (beiMiClient != null && !StringUtils.isBlank(token) && (userToken = (Token) CacheHelper.getApiUserCacheBean()
//				.getCacheObject(token, beiMiClient.getOrgi())) != null) {
//			// 鉴权完毕
//			PlayUserClient userClient = (PlayUserClient) CacheHelper.getApiUserCacheBean()
//					.getCacheObject(userToken.getUserid(), userToken.getOrgi());
//			beiMiClient.setClient(client);
//			beiMiClient.setUserid(userClient.getId());
//			beiMiClient.setSession(client.getSessionId().toString());
//			NettyClients.getInstance().putClient(userClient.getId(), beiMiClient);
//
//			/**
//			 * 更新当前玩家状态，在线|离线
//			 */
//			userClient.setOnline(true);
//			UKTools.published(userClient, BMDataContext.getContext().getBean(PlayUserClientESRepository.class),
//					BMDataContext.getContext().getBean(PlayUserClientRepository.class));
//
//			GameEvent gameEvent = BMDataContext.getGameEngine().gameRequest(userToken.getUserid(),
//					beiMiClient.getPlayway(), beiMiClient.getRoom(), beiMiClient.getOrgi(), userClient);
//			if (gameEvent != null) {
//				/**
//				 * 游戏状态 ， 玩家请求 游戏房间，活动房间状态后，发送事件给 StateMachine，由 StateMachine驱动
//				 * 游戏状态 ， 此处只负责通知房间内的玩家 1、有新的玩家加入
//				 * 2、给当前新加入的玩家发送房间中所有玩家信息（不包含隐私信息，根据业务需求，修改PlayUserClient的字段，剔除掉隐私信息后发送）
//				 */
//				ActionTaskUtils.sendEvent("joinroom", UKTools.json(userClient), gameEvent.getGameRoom());
//				client.sendEvent("players", UKTools.json(CacheHelper.getGamePlayerCacheBean()
//						.getCacheObject(gameEvent.getRoomid(), beiMiClient.getOrgi())));
//				/**
//				 * 当前是在游戏中还是 未开始
//				 */
//				Board board = (Board) CacheHelper.getBoardCacheBean().getCacheObject(gameEvent.getRoomid(),
//						gameEvent.getOrgi());
//				if (board != null) {
//					if (board.isFinished()) {
//						BMDataContext.getGameEngine().finished(gameEvent.getRoomid(), gameEvent.getOrgi());
//						// game.change(gameEvent); //通知状态机 , 此处应由状态机处理异步执行
//					} else {
//						// 恢复数据
//					}
//				} else {
//					// 通知状态
//				}
//				game.change(gameEvent); // 通知状态机 , 此处应由状态机处理异步执行
//			}
//		}
	}

}
